Citation: GenSurf Help


Select the appropriate game that you are creating a surface for. Different games have different associated options and the settings cause GenSurf to behave in slightly different ways. For example, detail brushes cannot be used in Half-Life so the "use detail brushes" checkbox is hidden if Half-Life is selected. The game selection also affects texture selection and how skyboxes and lighting are generated (For Quake2 and KingPin, worldspawn properties are set to make use of ArghRad's sun feature. For Half-Life maps, a light_environment entity is added, and clip brushes are added at the surface boundaries, since sky brushes are not solid in Half-Life).


Click this to build a ground surface map.


Click this to build a ceiling or cave roof.


Click this to build a cliff wall generally facing 0 degrees (east). NOTE: You can generate surfaces at orientations other than 90 degree increments by changing the corner values on the Extents tab.


Click this to build a cliff wall generally facing 90 degrees (north). NOTE: You can generate surfaces at orientations other than 90 degree increments by changing the corner values on the Extents tab.


Click this to build a cliff wall generally facing 180 degrees (west). NOTE: You can generate surfaces at orientations other than 90 degree increments by changing the corner values on the Extents tab.


Click this to build a cliff wall generally facing 270 degrees (south). NOTE: You can generate surfaces at orientations other than 90 degree increments by changing the corner values on the Extents tab.


Click this to build a surface with alternating hills and valleys using the general form Z=cos(X) x sin(Y)


Click this to build a surface with ridges parallel to the vertical axis.


Click this to build a surface with ridges parallel to the horizontal axis.


Click this to build a map from a bitmap image that represents a contour plot. Click the "Bitmap" button to select the bitmap image. GenSurf only supports 256-color (8 bit) bitmaps. GenSurf will work with any 256-color bitmap, but gray scale bitmaps are a bit more intuitive to the user.


Click this to build a random surface using the Plasma Cloud technique. Roughness is controlled by the Roughness input. To build a surface with completely random values not dependent on neighboring vertices, use one of the other waveforms with 0 amplitude.


Enter the wavelength (distance between crests). NOTE: Wavelengths equal to the grid size or 2 times the grid size will result in 0 amplitudes. For best results, the wavelength value should be at least 4 times the grid size (extents divided by the number of divisions).


Enter the height of hills/ridges.


Enter a roughness value for the surface. For a smooth surface, enter 0 here.


Check this box to restrict the edges of the surface to a straight line. This will help match up brush edges if you drop this surface into another map.


Type the name of the output file. The filename should have a .map extension.


Click this to search for an existing map file and/or set the default path for output.


Check this box to display a wireframe preview of the generated surface.


Click this to accept all input and produce a .map file.


Enter the number of divisions in the horizontal direction, or click on the corresponding spin buttons. Note: Vis time and poly counts will be proportional to the number of divisions used. You should use the smallest number that gives the level of realism you are attempting to produce (or use a large number of divisions and decimate the grid).

For best results, the extents in a given direction should be evenly divisible by the number of divisions in that direction.


Enter the number of divisions in the vertical direction, or click on the corresponding spin buttons. Note: Vis time and poly counts will be proportional to the number of divisions used. You should use the smallest number that gives the level of realism you are attempting to produce (or use a large number of divisions and decimate the grid).

For best results, the extents in a given direction should be evenly divisible by the number of divisions in that direction.


Enter the minimum horizontal coordinate of the surface, i.e. X for a surface parallel to the XY or XZ planes, Y for a surface parallel to the YZ plane. For best results, the extents (maximum-minimum values) in a given direction should be evenly divisible by the number of divisions in that direction.


Enter the maximum horizontal coordinate of the surface, i.e. X for a surface parallel to the XY or XZ planes, Y for a surface parallel to the YZ plane. For best results, the extents (maximum-minimum values) in a given direction should be evenly divisible by the number of divisions in that direction.


Enter the minimum vertical coordinate of the surface, i.e. Y for a surface parallel to the XY plane, Z for a surface parallel to the XZ or YZ planes. For best results, the extents (maximum-minimum values) in a given direction should be evenly divisible by the number of divisions in that direction.


Enter the maximum vertical coordinate of the surface, i.e. Y for a surface parallel to the XY plane, Z for a surface parallel to the XZ or YZ planes. For best results, the extents (maximum-minimum values) in a given direction should be evenly divisible by the number of divisions in that direction.


Enter the height of the surface at the lower left corner. This value will likely be modified unless "Linear Borders" is checked.


Enter the height of the surface at the upper left corner. This value will likely be modified unless "Linear Borders" is checked.


Enter the height of the surface at the lower right corner. This value will likely be modified unless "Linear Borders" is checked.


Enter the height of the surface at the upper right corner. This value will likely be modified unless "Linear Borders" is checked.


Enter the name of the texture to use for the surface. Enter the name as it should appear in the .map file: Forward slashes rather than backslashes, and do not include a filename extension for the texture.


Click this to select a texture from a list of files on your hard disk.


Enter the name of the texture to be used on all faces other than the surface. Enter the name as it should appear in the .map file: Forward slashes rather than backslashes, and do not include a filename extension for the texture. If you leave this box blank, GenSurf will use the same texture used for the surface.

NOTE: For Q3 maps, the current version of q3map contains one or more bugs that will cause visual glitches in some complex surfaces unless you use the detail property for the surface. If your terrain surface would not have helped block visibility without using the detail property (and most simple surfaces do not) the use of the detail property will not harm performance and will substantially decrease compile time. If you do use the detail property, you should use common/caulk for faces other than the surface; otherwise your polygon counts will be much higher than necessary.


Click this to select a texture from a list of files on your hard disk.


Enter the name of the texture to be used on faces at an angle greater than the "steep" angle from the base plane. Enter the name as it should appear in the .map file: Forward slashes rather than backslashes, and do not include a filename extension for the texture. If you leave this box blank, GenSurf will use the same texture specified in the "Surface" box.


Click this to select a texture from a list of files on your hard disk.


Check this box to select textures from a pak file or wad file (depending on the game selection). Uncheck this box to type the name of a texture or select a texture from a list of files on your hard disk.


Enter the name of the pak or wad file to examine, or click "Browse" to select a pak/wad file from a list of files on your hard disk.


Click this to select a pak or wad file from a list of files on your hard disk.


Scroll through this list to select the texture you want to use on the surface.


Scroll through this list to select the texture you want to use on all faces other than the surface.

NOTE: For Q3 maps, the current version of q3map contains one or more bugs that will cause visual glitches in some complex surfaces unless you use the detail property for the surface. If your terrain surface would not have helped block visibility without using the detail property (and most simple surfaces do not) the use of the detail property will not harm performance and will substantially decrease compile time. If you do use the detail property, you should use common/caulk for faces other than the surface; otherwise your polygon counts will be much higher than necessary.


Scroll through this list to select the texture you want to use on faces at an angle greater than the "steep" angle from the base plane.


This entry specifies the angle (degrees) from the base plane above which the "Steep" texture will be used rather than the "Surface" texture. For example you might want to use a grass texture for "Surface" and a rock texture for "Steep".


Check this box to include a sky box and info_player_start in the .map file when you produce a ground surface (base parallel to XY plane). This option is disabled and ignored for wall surfaces. Using this option produces a ready-to-compile map (no leaks, since everything is enclosed).


Check this to automatically overwrite existing .map files. Leave this box unchecked if you would rather be warned before overwriting existing files.


Check this box to use the detail content property on all brushes. Using the detail property will result in a dramatic decrease in vis time and generally result in fewer brush cuts. However, depending on the topography of the surface, using detail brushes may result in higher poly counts in the game. For the best balance between fast vis time and low polygon counts, use detail hint brushes if available for the selected game.
NOTE: For Quake III Arena maps, if you use detail brushes you should also use the common/caulk texture for "Other". Otherwise your map will have much higher polygon counts than necessary and leak if structural brushes do not back up the terrain.


Check this box to use the ladder content property on all surface brushes and play Spiderman in your map. NOTE: This option is not recommended for ground surfaces, unless you are attempting to simulate running through molasses.


Enter a value to use as an ID for ArghRad 2.0's Phong shading, which will give the surface the appearance of a smooth curve. Enter 0 if you do not want to use Phong shading for this surface, or if you don't use ArghRad 2.0 or a later version. GenSurf will only apply this value to surface faces. If you want to use Phong shading on other brush sides, you'll need to manually set those values in your editor.


Check this box to append the generated surface to an existing .map file. Leave this box unchecked to overwrite existing .map files. NOTE: It is a good idea to make backup copies of existing maps before using this option.


Click this to update the drawing in the Preview window.


Enter the texture offset in the horizontal direction.


Enter the texture offset in the vertical direction.


Enter the texture scale in the horizontal direction.


Enter the texture scale in the vertical direction.


Click this to set specific vertices to a fixed height.


Check this box to automatically generate detail hint brushes to help improve the r_speeds of the surface. "Detail" hint brushes won't generate portals - so they don't improve the visibility of your map, but they will help prevent brush splits. Using this option will automatically select and disable the "Use detail brushes" checkbox, since the detail hint brushes would be ineffective unless the brushes they surrounded also used the detail content property.
NOTES:
The detail property is normally turned off for hint brushes by standard versions of qbsp3, even if you've explicitly set that property. You can get around this limitation by using Geoffrey DeWan's qbsp3 for Quake 2 maps, or the versions of qbsp3 distributed with GenSurf for SiN or Heretic 2. Half-Life does not have the detail content property, so while using this feature will definitely improve performance, compilation time will normally be much longer than for equivalent maps with Quake 2, SiN, or Heretic 2. To use hint brushes in Half-Life maps you'll need to download Zoner's compiling utilities, available from the Half-Life Editing Resource Center (http://halflife.gamedesign.net/resources/zhlt.shtml).
This option is disabled for Quake 3 Arena maps. The map compiler q3map does not fragment terrain surfaces in the same way that various Q2-compilers do, so these hint brushes would be redundant.


Enter a value for the selected vertex. This value will not be adjusted when applying a waveform or roughness to the surface. Unlock this vertex (so that it will be adjusted normally) by clicking "Free". This vertex will influence vertices within the "Range affected" of this vertex.


Enter the range away from the selected vertex that other vertices will be affected. Use 0 if you don't want other vertices to be influenced by the currently selected one. Note: this box is disabled if you've chosen the fractal generator, as it uses a completely different method for determining values.


Click this to free (unlock the value of) the currently selected vertex.


Click this to free (unlock the values of) all vertices.


Enter a rate of change for the surface affected by the fixed value. 0 gives a smooth sinusoidal curve, values less than 0 give progressively sharper spikes, and values greater than 0 take on a square shape. Values less than -30 or greater than 30 are set to -30 and 30, respectively. Note that this entry will have no effect unless you also specify a "range affected".


Enter a seed value for the pseudo-random number generator. Use the same value to reproduce previous results.


Click this to select a bitmap image to model, as well as set scale factors for the bitmap's colors.


Type the name of an 8-bit bitmap image file, or click Browse to select an image from a list of those available on your system.


Click this to select a bitmap image file from a list of those available on your system.


Enter the value corresponding to color index 0 in the bitmap file. For gray scale images, color 0 is normally black.


Enter the value corresponding to color index 255 in the bitmap file. For gray scale images, color 255 is normally white.


Click this to open a previously saved GenSurf settings file.


Click this to save all current settings to a GenSurf file.


Use the slider to control the number of vertices discarded by GenSurf. For many surfaces, you can produce roughly the same shape surface with a high decimation value (75-85%). This will generally result in a map with lower polygon counts (and better in-game performance).


Click this to restore default values from DEFAULTS.SRF. If this file does not exist, GenSurf initializes all input parameters to reasonable values. You can create your own default surface by setting all parameters to your liking, then saving a settings file as DEFAULTS.SRF with the Save As button.


Check this box to produce one or more curved patches in the shape of your selected surface rather than producing solid brushes. This option is only available for Quake III Arena. Note: Depending on the size of your surface (and the user's graphic detail settings, which you cannot control), curved surfaces will be represented in the game by a very large number of polygons. Read the warnings concerning curved surfaces on the GenSurf web page before using this feature.


Enter a Microsoft Excel-valid formula used to describe the amplitudes of the terrain surface (height for a ground surface, for example). The formula should be a function of the horizontal and/or vertical coordinates (represented by H and V), and optionally the radius from the center of the grid (represented by "radius"). Radius is of course a derived characteristic of the grid, included for your convenience when generating axisymmetric surfaces. For example, GenSurf's alternating hill/valley waveform would be represented by:

value=Amplitude * cos((H-Hlo)/Wavelength*2*PI()-PI()/2) * sin((V-Vlo)/Wavelength*2*PI())

You must have Microsoft Excel 5.0 or a later version installed on your system for this feature to function. For more information on valid Microsoft Excel formulas, search the Excel Help file for "Math and Trigonometry Functions".